The present invention generally relates to a system optimization technique, and more particularly, relates to a method, a program and an apparatus for optimizing a configuration parameter set of a system.
With the proliferation of the Internet, a Web system is in wide use in recent years. A typical Web system includes: an HTTP server which is a gateway; an application server; and a database server. The system is connected to a client via the Internet. The HTTP server receives an HTTP request transmitted from the browser of a client via the Internet, and passes the request to the application server after filtering is performed on the request. The application server appropriately uses data obtained by transmitting a query to the database server. Furthermore, by executing application software, the application server processes the request received from the HTTP server.
The performance of a web system (for example, a throughput which is the capability of processing requests per unit time) depends on a plurality of various configuration parameters (simply referred to as “parameters” in this specification) such as: the maximum allowable number of client connections to the HTTP server; the initial heap size, the maximum heap size, the maximum thread size, and the maximum pool size of the application server; the buffer pool size, and presence or absence of an index of the database server. It is apparent that the optimization of a parameter set is needed in order to maximize the performance of a web system.
As a method for optimizing the parameter set of a web system, considered is a method in which throughputs are measured with respect to each of a plurality of prepared parameter sets, by applying a workload to the web system for a fixed period of time. Then, a parameter set of which throughput is the maximum is selected. However, this method may take an enormous amount of time required for optimization since even a simple web system has approximately 300 possible parameter sets. Additionally, the performance may not be measured accurately since a fixed period of time for applying a workload to a system under each parameter set is too short, or the performance may be measured more than necessary since the fixed period of time is too long.
Furthermore, in order to solve the problem that optimization requires too long a time, there is one possible method in which parameter sets are selected out of the plurality of prepared parameter sets in the order of parameter sets that a system designer considers to be optimal on the basis of the experience and intuition, and in which the best configuration is then adopted out of the selected parameter sets. However, this method is based on subjectivity, and lacks versatility. In order to solve the problem of subjectivity, a technique for optimizing a parameter set and for evaluating performance of a web system is disclosed in the following documents.
A. M. Law and W. D. Kelton, Simulation Modeling and Analysis (3rd edition), McGraw-Hill (2000) discloses a method for selecting a configuration having the best measurement value by using the design of experiment. In this method, the performance is not measured in cases of all of the configurations, but the performance is measured with a certain degree of accuracy in a case of a part of the configurations that is selected randomly without using information obtained by a measurement.
Japanese Patent Application Laid-open No. 2005-222343 discloses a search algorithm using the downhill simplex method. In this disclosed method, the performance is measured with a certain degree of accuracy in a case of a configuration close to an existing optimal configuration. Then, the search algorism causes the optimal configuration to be replaced with the thus measured configuration if the measurement result thereof is better than the existing optimal configuration.
B. Xi, Z. Liu, M. Raghavachari, C. H. Xia, and L. Zhang, “A smart hill-climbing algorithm for application server configuration,” in Proceedings of the 13th International Conference on World Wide Web, pages 287-296 (2004) discloses a search algorithm for replacing one of configurations is considered to be an optimal configuration with another configuration. In this method, one of the configurations under which the performance has not been measured is estimated to be superior to the others by regressing an already-obtained measurement value to a quadratic function. Then, under the estimated configuration, the performance is measured with a certain degree of accuracy. If the measurement result is better than that under the optimal configuration, the optimal configuration is replaced with the estimated configuration.
Japanese Patent Application Laid-open No. 2003-131907 discloses a technique for: virtually substantiating a plurality of clients connected to a web system including bottleneck which is targeted for performance evaluation; adding a workload to a computer for performance measurement; and outputting the evaluation result including information on the performance of a web system and information on bottleneck avoidance.
Japanese Patent Application Laid-open No. 2004-46734 discloses a technique for: previously storing a model pattern, a system characteristic, a functional characteristic, and a response-time prediction model information in a system model database; and causing a performance prediction program to predict the performance of a web system in accordance with parameters inputted as input items and information in the system model database.
According to the above prior arts, an optimal configuration may not be included in a selected parameter set group which is targeted for evaluation, or performance measurement may be performed more than necessary on some parameter sets since all parameter sets targeted for evaluation are subjected to performance measurement with a fixed degree of accuracy.